#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "MyRTC.h"
//待机模式+实时时钟

int main(void)
{
	/*模块初始化*/
	OLED_Init();		//OLED初始化
	MyRTC_Init();		//RTC初始化
	
	//最好，还是单独开启PWR时钟
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);	
	
	/*显示静态字符串*/
	OLED_ShowString(1, 1, "CNT:");
	OLED_ShowString(2, 1, "ALR:");
	OLED_ShowString(3, 1, "ALRF:");//闹钟标志位

	PWR_WakeUpPinCmd(ENABLE);//唤醒功能，不要使用GPIO引脚
	//设定闹钟值,只写不能读
	//所以要确保写进去的数据是否正确，把值取出来
	uint32_t Alarm=RTC_GetCounter()+10;
	RTC_SetAlarm(Alarm);//当前时间10秒后
	OLED_ShowNum(2,6,Alarm,10);
	
	
	
	
	
	while (1)
	{
		
		
		OLED_ShowNum(1,6,RTC_GetCounter(),10);	//显示32位的秒计数器
		OLED_ShowNum(3,6,RTC_GetFlagStatus(RTC_FLAG_ALR),1);//查看当闹钟数和CNT值相等时的闹钟标志位置1
		
		OLED_ShowString(4,1,"Running:");
		Delay_ms(100);
		OLED_ShowString(4,1,"        ");
		Delay_ms(100);
		OLED_ShowString(4, 9, "STANDBY");			//OLED闪烁STANDBY，指示即将进入待机模式
		Delay_ms(1000);
		OLED_ShowString(4, 9, "       ");
		OLED_Clear();
		PWR_EnterSTANDBYMode();//进入待机模式
	}
}
